package com.siwei.apply.mapper;

import com.siwei.apply.domain.NodeAttachment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 记录流程对应的附件材料 Mapper 接口
 */
@Mapper
public interface NodeAttachmentMapper {
    
    /**
     * 根据ID查询附件信息
     *
     * @param id 主键ID
     * @return NodeAttachment
     */
    NodeAttachment selectById(String id);

    /**
     * 根据节点ID查询附件信息
     *
     * @param nodeId 节点ID
     * @return NodeAttachment
     */
    NodeAttachment selectByNodeId(String nodeId);
    
    /**
     * 插入附件记录
     *
     * @param nodeAttachment 附件对象
     */
    void insert(NodeAttachment nodeAttachment);
    
    /**
     * 根据节点ID更新附件记录
     *
     * @param nodeAttachment 附件对象
     */
    void update(NodeAttachment nodeAttachment);

    /**
     * 根据ID更新附件记录
     *
     * @param nodeAttachment 附件对象
     */
    void updateById(NodeAttachment nodeAttachment);
    
    /**
     * 根据节点ID删除附件记录
     *
     * @param nodeId 节点ID
     */
    void deleteByNodeId(String nodeId);

    /**
     * 根据节点ID删除，且排除指定ID的记录
     *
     * @param nodeId 节点ID
     * @param id 排除的ID（不等于）
     */
    void deleteByNodeIdAndIdNotEqual(@Param("nodeId") String nodeId, @Param("id") String id);
}
